using Eno.Domain.Entity.Log;

namespace Eno.Application.Services;

public interface ILogService
{
    Task LogInfoAsync(string message, string? source = null, object? additionalData = null);
    Task LogWarningAsync(string message, string? source = null, object? additionalData = null);
    Task LogErrorAsync(string message, Exception? exception = null, string? source = null, object? additionalData = null);
    Task LogDebugAsync(string message, string? source = null, object? additionalData = null);
    Task<List<Log>> GetLogsAsync(int pageNumber = 1, int pageSize = 50, string? level = null);
    Task<Log?> GetLogByIdAsync(int id);
}